Method for storing format specific data in a microcontroller execution memory

ABSTRACT

Format specific parameters may be selected in a disk drive comprising a control system and a plurality of disk surfaces each having a surface format for storing data, wherein at least one surface format is different than other surface formats and wherein the control system comprises a microcontroller having a microcontroller execution memory. The method for selecting these format specific parameters includes initializing the disk drive for operation, receiving a data transfer command, and selecting a disk surface for performing data transfer operations based on the received data transfer command. The method further includes generating a format specific data structure corresponding to the selected disk surface, storing the format specific data structure at a predetermined address in the microcontroller execution memory, and executing instructions for performing the data transfer operations using the microcontroller, wherein the instructions are executed using the stored format specific data structure.

FIELD OF THE INVENTION

This invention relates to sectors on disks in a disk drive. Moreparticularly, the invention is directed to obtaining timing map data forsplit-sectors on a disk.

BACKGROUND OF THE INVENTION

Disk drives conventionally partition disk surfaces into logical zonesfor optimizing storage capacity by varying bit density within each ofthe logical zones. The zones may be visualized as concentric bands oftracks with a varying progression of bit density from band to band. Eachzone stores a range of user data blocks which are addressed by a hostcomputer using a logical block address (LBA). The disk drive comprisesan intelligent control system which translates the host specified LBAinto an internal address. As is known in the art, the internal addressmay result from a translation process that translates the LBA into aninternal absolute block address (ABA) that is eventually translated intoa physical sector address and track address.

The disk drive control system may maintain a set of zone tables whereeach table provides information about the zone including for example anaddress of the first user data block in the zone. Other parameters inthe zone table enable the control system to determine in which zone agiven user data block resides by searching the zone tables to locate thesector corresponding to the block address.

Additionally, the disk drive control system may maintain a set of timingmap tables (sometime referred to as a hard-sector description table(HSDT) by those in the art) where each table describes a sector in termsof its timeout counter (TOC), the wedge the sector belongs to, sectorsplits and other data corresponding to a location of a selected sectoron a disk surface. Additionally, the disk drive control system maymaintain a second set of timing map tables containing the timing offsetsof the preamble-field of each split sector in a zone or a set of zone onthe disk surface. This data is then used by control system whichsearches for the data in the timing map table, to verify the correctpositioning of the head over a desired portion of the disk surface. Thetiming map tables are also aligned with zone table boundaries for diskcylinders.

In most cases, the disk drive control system can accomplish the timingmap tables searches without compromising performance because the timingmap tables are stored in memory when the drive is initialized foroperation and only one set of tables is required because each disksurface has an identical format. The highly competitive disk drivemarket has more recently driven initiatives to minimize cost by allowingfor variations in surface format such that multiple sets of timing maptables may be required. Detrimentally, this could require increasedmemory for storing the tables and increased processor execution overheadto perform searches of the expanded tables.

Accordingly, what is needed is a method for obtaining timing-map data,while reducing the need for increased memory for storing the tables andthe processor execution overhead.

SUMMARY OF THE INVENTION

This invention can be regarded as a method of selecting format specificparameters in a disk drive comprising a control system and a pluralityof disk surfaces each having a surface format for storing data, whereinat least one surface format is different than other surface formats andwherein the control system comprises a microcontroller having amicrocontroller execution memory. The method includes initializing thedisk drive for operation, receiving a data transfer command, andselecting a disk surface for performing data transfer operations basedon the received data transfer command.

The method further includes generating a format specific data structurecorresponding to the selected disk surface, storing the format specificdata structure at a predetermined address in the microcontrollerexecution memory, and executing instructions for performing the datatransfer operations using the microcontroller, wherein the instructionsare executed using the stored format specific data structure.

BRIEF DESCRIPTION OF THE DRAWINGS

FIGS. 1A–B are block diagrams of a disk drive in which the invention maybe practiced.

FIG. 2 illustrate a disk formatted for use with a disk drive employingan embodiment of the present invention.

FIG. 3 is a flow chart illustrating a process used in an embodiment ofthe invention.

FIGS. 4A–B are flow charts further illustrating the process used in theembodiment of the invention shown in FIG. 3.

DETAILED DESCRIPTION OF THE INVENTION

With reference to FIG. 1A, a block diagram of a disk drive 30 is shownin which the invention may be practiced. Disk drive 30 is connectable toa host computer (not shown) via host bus connector 38 for the transferof commands, status and data. One suitable standard for such connectionis the Advanced Technology Attachment (ATA) standard presently favoredfor desktop personal computers. Disk drive 30 comprises a Head DiskAssembly (HDA) 34, and a disk drive control system 33 mounted on aprinted circuit board assembly (PCBA) 32.

As shown in FIG. 1A, HDA 34 comprises one or more disks 46 for datastorage; a spindle motor 50 for rapidly spinning each disk 46 (fourshown) on a spindle hub 48; and an actuator assembly 40 for swingingheads 64 in unison over each disk 46. The heads 64 are connected to apreamplifier 42 via a trace assembly 65 for reading and writing data ondisks 46. Preamplifier 42 is connected to channel circuitry in controlsystem 33 via read data line 92 and write data line 90.

The control system 33 comprises a read/write channel 68, host interfaceand disk controller (HIDC) 74, voice coil motor driver (VCM) 102,spindle motor driver (SMD) 103, microprocessor 84, and several memoryarrays such as dynamic random access memory (DRAM) 82, static randomaccess memory (SRAM) 108, and non-volatile memory 106. A serial bus 99provides a medium for bi-directional transfer of digital data forprogramming and monitoring channel 68, VCM driver 102 and SMD 103.Host-initiated operations for reading and writing data in disk drive 30are executed under control of microprocessor 84 connected to thecontrollers and memory arrays via a bus 86. Program code executed bymicroprocessor 84 maybe stored in memory arrays DRAM 82, SRAM 108 andnon-volatile memory 106. DRAM 82 may also serve as a cache memory fordata read from or written to the disk as is well known in the art.

During disk read and write operations, data transferred by preamplifier42 is decoded and encoded by read/write channel 68. During readoperations, channel 68 decodes data into digital bits transferred on anon-return-to-zero (NRZ) bus 96 to HIDC 74. During write operations,HIDC 74 provides digital data over the NRZ bus 96 to read/write channel68 which encodes the data prior to its transmittal to preamplifier 42.

The HIDC 74 comprises a disk controller 80 for formatting and providingerror detection and correction of disk data. The disk controller 80includes a microcontroller 80 a having execution memory 80 b. The HIDC74 further comprises a host interface controller 76 for responding tocommands from host 36, and a buffer controller 78 for storing data whichis transferred between disks 46 and host (not shown). Collectively thecontrollers 80 and 76 in HIDC 74 provide automated functions whichassist microprocessor 84 in controlling disk operations.

The servo controller circuit 98 in HIDC 74 provides an interface betweenmicroprocessor 84 and actuator assembly 40 and spindle motor 50.Microprocessor 84 commands logic in servo controller 98 to positionactuator 40 using a VCM driver 102 to precisely control the rotation ofspindle motor 50 with a spindle motor driver 103.

FIG. 2 illustrate a disk 46 formatted for use with disk drive 30 shownin FIGS. 1A–B. The disk 46 has two surfaces 1 and 2 (not shown) that areof different surface formats from one another. Each of disk surfaces 1and 2 is partitioned into radially-spaced concentric zones 4, such aszone_1 through zone_N, each of which have a number of tracks 8. Eachtrack 8 comprises data sectors, such as data sector 9. Each disk surfacefurther includes embedded servo sectors 6 disposed on the disk surfacesbetween angularly-spaced wedge-like areas 7, such as W_0 through W_N,for use in positioning the head 64 over a desired track 8 during writeand read operations. Suitably, data sectors are recorded in theintervals between servo sectors 6 on each track 8. Servo sectors 6 arethen sampled at regular intervals by channel 68, and are processed byservo controller 98 to provide position information to microprocessor 84via bus 86. As also shown in FIG. 2, each track 8 contains at least onesplit-sector 10 that is partitioned by a servo sector 6, and includes afirst portion located in a first wedge 7, such as W_4 and asplit-portion located in an adjoining wedge 7, such as W_3.

Referring to FIG. 3 in conjunction with FIG. 2, a process used in anembodiment of the invention is illustrated for selecting format specificparameters in a disk drive 30. As shown, the process begins at block 310in which the disk drive 30 is initialized for operation. Next, in block312, a data transfer command is received in the disk drive 30. Suitably,the data transfer command is received from a host computer (not shown)in communication with the disk drive 30.

Next, in block 314, a disk surface (such as disk surface 1 or 2) isselected for performing data transfer operations based on the receiveddata transfer command. Next, in block 316, a format specific datastructure is generated that corresponds to the selected disk surface,such as to disk surface 1, as described below and in greater detail inconjunction with FIG. 4A.

Next, in block 318, the generated format specific data structure isstored at a predetermined address 80 c in the micro-controller executionmemory 80 b for access by the microcontroller 80 a during the operationsof the disk drive, as shown in FIG. 1B and described below and ingreater detail in conjunction with FIG. 4B. Next, in block 320,instructions for performing the data transfer operations are executedusing the microcontroller 80 a. The instructions are executed using thestored format specific data structure of block 318. The flow thenproceeds to block 322 in which the process ends.

FIG. 4A, in conjunction with FIG. 2, illustrate in greater detail thegenerating process in block 316 of FIG. 3. As shown in FIG. 4, theprocess begins at block 410 by identifying the split-sectors 10 intracks 8 of a selected portion of the selected surface 1. Suitably, theselected portion is one or more selected zones 4 in the selected surface1.

For ease of illustrating the process of the present invention shown inFIG. 4A, an exemplary disk 46 with two surfaces 1 and 2 having differentsurface formats is provided in FIG. 2 and used throughout the detaileddescription. As shown by lines 204, the sector-diagram 200 is a linearrepresentation of the split-sector 10 in a circular track 8 of surface 1of disk 46), in zone_N. As shown in FIG. 2, split-sector 10 ispartitioned by a servo sector 6 into two portions 10 a and 10 b whereinthe portion 10 a is located in a wedge W_4, and the split-portion 10 bis located in the adjoining W_3. As also shown, each of portions 10 aand 10 b includes a preamble-field 12 and 14, respectively.Preamble-fields 12 and 14 in turn are characterized by a preamble-fieldlength value, such as PFL_1 and PFL_2 values, respectively. It should benoted that the direct correlation between the length of a preamble-fieldand the length of time for passage of a preamble-field under the headduring the rotation of a disk surface is well known in the art.

Returning to FIG. 4A, the process flow proceeds to block 412 in whichthe preamble-field length value corresponding to the preamble-field ofthe split-portion of each identified split-sector is determined. In theabove example, the determined preamble-field length value correspondingto the preamble-field 14 of the split-portion 10 b of the identifiedsplit-sector 10 is PFL_2. Next, the process flow proceeds to block 414for returning to block 316 of FIG. 3. The overall process flow thenproceed to in block 318 of FIG. 3 as described above.

FIG. 4B, in conjunction with FIG. 2, illustrate in greater detail thegenerating process in block 318 of FIG. 3. As shown in FIG. 4B, theprocess begins at block 414 in which the determined preamble-fieldlength values are stored in the microcontroller execution memory 80 b.In the above example, the determined PFL_2 value corresponding to thepreamble-field 14 of the split-portion 10 b of the identifiedsplit-sector 10 is stored in the microcontroller execution memory 80 b.Suitably, the determined preamble-field length values are first storedin SRAM 108 and then loaded into the predetermined address 80 c ofmicrocontroller execution memory 80 b for access by the microcontroller80 a during the operations of the disk drive, as shown in FIG. 1B.Suitably the preamble-field length values are expressed as a byte-count,with each preamble-field length value residing in only one byte ofmemory. Next, the process flow then proceeds to block 418 for returningto block 320 of FIG. 3. The flow then proceeds to block 322 in which theoverall process ends.

Currently in the art, the preamble-field length values for thesplit-portion of the split-sectors for all zones in a disk surface aredetermined prior to the initialization of the disk drive for operation,and stored in a table in a reserved portion on the disk surface. Thevalues are then loaded into a relatively slower DRAM memory forsubsequent use by the micro-controller. The highly competitive diskdrive market has more recently driven initiatives to minimize cost byallowing for variations in surface format such that multiple sets oftiming map tables may be required. Detrimentally, this could requireincreased memory for storing the tables and increased processorexecution overhead to perform searches of the expanded tables. Oneadvantage of the present invention over the prior art is that bydetermining the split-sector preamble-field length values for a selectedportion (such as a zone) of a selected surface during the operations ofthe disk drive (i.e. on the fly), the need for allocation of largerstorage areas for storage of all the preamble-field length values forall the zones of all differing surfaces in a disk drive is minimized.

1. A method for selecting format specific parameters in a disk drivecomprising a control system and a plurality of disk surfaces each havinga surface format for storing data, wherein at least one surface formatis different than other surface formats and wherein the control systemcomprises a microcontroller having a microcontroller execution memory,the method comprising: initializing the disk drive for operation;receiving a data transfer command; selecting a disk surface forperforming data transfer operations based on the received data transfercommand; generating a format specific data structure corresponding tothe selected disk surface; storing the format specific data structure ata predetermined address in the microcontroller execution memory; andexecuting instructions for performing the data transfer operations usingthe microcontroller, wherein the instructions are executed using thestored format specific data structure; wherein the selected disk surfacecomprises a plurality of wedges and a plurality of zones traversing thewedges, each zone having at least one track having a plurality ofsectors and at least one split-sector, wherein the generated datastructure corresponds to a selected zone.
 2. The method as claimed inclaim 1, wherein each split sector in the track comprises a firstportion located in a first wedge and a split-portion located in anadjoining wedge.
 3. The method as claimed in claim 2, wherein thegenerating further comprises: identifying the split-sectors in theselected zone; and determining a preamble-field length valuecorresponding to a preamble-field of the split-portion of eachidentified split-sector.
 4. The method as claimed in claim 3, whereinthe generating further comprises: storing the determined preamble-fieldlength values in the microcontroller execution memory.
 5. The method asclaimed in claim 4, wherein the determined preamble-field length valuesare stored in SRAM.
 6. The method as claimed in claim 1, wherein thedata transfer command is received from a host computer in communicationwith the disk drive.